# SnipMate is required to use snippets
# Download SnipMate: http://www.vim.org/scripts/script.php?script_id=2540
# Put this file in ~/.vim/snippets/ then restart vim
# This snippet file includes many useful snippets for CodeIgniter. Please feel free to fork and contribute!
snippet php
	<?php
	${1}
	?>
snippet ec
	echo "${1:string}"${2};
snippet inc
	include '${1:file}';${2}
snippet inc1
	include_once '${1:file}';${2}
snippet req
	require '${1:file}';${2}
snippet req1
	require_once '${1:file}';${2}
# $GLOBALS['...']
snippet globals
	$GLOBALS['${1:variable}']${2: = }${3:something}${4:;}${5}
snippet $_ COOKIE['...']
	$_COOKIE['${1:variable}']${2}
snippet $_ ENV['...']
	$_ENV['${1:variable}']${2}
snippet $_ FILES['...']
	$_FILES['${1:variable}']${2}
snippet $_ Get['...']
	$_GET['${1:variable}']${2}
snippet $_ POST['...']
	$_POST['${1:variable}']${2}
snippet $_ REQUEST['...']
	$_REQUEST['${1:variable}']${2}
snippet $_ SERVER['...']
	$_SERVER['${1:variable}']${2}
snippet $_ SESSION['...']
	$_SESSION['${1:variable}']${2}
# Start Docblock
snippet /*
	/**
	 * ${1}
	 **/
# Class - post doc
snippet doc_cp
	/**
	 * ${1:undocumented class}
	 *
	 * @package ${2:default}
	 * @author ${3:`g:snips_author`}
	**/${4}
# Class Variable - post doc
snippet doc_vp
	/**
	 * ${1:undocumented class variable}
	 *
	 * @var ${2:string}
	 **/${3}
# Class Variable
snippet doc_v
	/**
	 * ${3:undocumented class variable}
	 *
	 * @var ${4:string}
	 **/
	${1:var} $${2};${5}
# Class
snippet doc_c
	/**
	 * ${3:undocumented class}
	 *
	 * @packaged ${4:default}
	 * @author ${5:`g:snips_author`}
	 **/
	${1:}class ${2:}
	{${6}
	} // END $1class $2
# Constant Definition - post doc
snippet doc_dp
	/**
	 * ${1:undocumented constant}
	 **/${2}
# Constant Definition
snippet doc_d
	/**
	 * ${3:undocumented constant}
	 **/
	define(${1}, ${2});${4}
# Function - post doc
snippet doc_fp
	/**
	 * ${1:undocumented function}
	 *
	 * @return ${2:void}
	 * @author ${3:`g:snips_author`}
	 **/${4}
# Function signature
snippet doc_s
	/**
	 * ${4:undocumented function}
	 *
	 * @return ${5:void}
	 * @author ${6:`g:snips_author`}
	 **/
	${1}function ${2}(${3});${7}
# Function
snippet doc_f
	/**
	 * ${4:undocumented function}
	 *
	 * @return ${5:void}
	 * @author ${6:`g:snips_author`}
	 **/
	${1}function ${2}(${3})
	{${7}
	}
# Header
snippet doc_h
	/**
	 * ${1}
	 *
	 * @author ${2:`g:snips_author`}
	 * @version ${3:$Id$}
	 * @copyright ${4:$2}, `strftime('%d %B, %Y')`
	 * @package ${5:default}
	 **/
	
	/**
	 * Define DocBlock
	 *//
# Interface
snippet doc_i
	/**
	 * ${2:undocumented class}
	 *
	 * @package ${3:default}
	 * @author ${4:`g:snips_author`}
	 **/
	interface ${1:}
	{${5}
	} // END interface $1
# class ...
snippet class
	/**
	 * ${1}
	 **/
	class ${2:ClassName}
	{
		${3}
		function ${4:__construct}(${5:argument})
		{
			${6:// code...}
		}
	}
# define(...)
snippet def
	define('${1}'${2});${3}
# defined(...)
snippet def?
	${1}defined('${2}')${3}
snippet wh
	while (${1:/* condition */}) {
		${2:// code...}
	}
# do ... while
snippet do
	do {
		${2:// code... }
	} while (${1:/* condition */});
snippet if
	if (${1:/* condition */}) {
		${2:// code...}
	}
snippet ife
	if (${1:/* condition */}) {
		${2:// code...}
	} else {
		${3:// code...}
	}
	${4}
snippet else
	else {
		${1:// code...}
	}
snippet elseif
	elseif (${1:/* condition */}) {
		${2:// code...}
	}
# Tertiary conditional
snippet t
	$${1:retVal} = (${2:condition}) ? ${3:a} : ${4:b};${5}
snippet switch
	switch ($${1:variable}) {
		case '${2:value}':
			${3:// code...}
			break;
		${5}
		default:
			${4:// code...}
			break;
	}
snippet case
	case '${1:value}':
		${2:// code...}
		break;${3}
snippet for
	for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {
		${4: // code...}
	}
snippet foreach
	foreach ($${1:variable} as $${2:key}) {
		${3:// code...}
	}
snippet fun
	${1:public }function ${2:FunctionName}(${3})
	{
		${4:// code...}
	}
# $... = array (...)
snippet array
	$${1:arrayName} = array(
		'${2}' => ${3},
		);${4}
##### CodeIgniter Snippets #####
# Generic $this->
snippet this
	$this->${1:model/controller}->${2:method}(${3:array});${4}
# New Model Class
snippet classm
	<?php
	/*
	* ${1:Describe the model's purpose}
	*/
	
	class ${2:model name} extends CI_Model
	{
		function __construct()
		{
			parent::__construct();
		}
		${3:// Code...}
	}
# New Controller Class
snippet classc
	<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');
	/**
	 * ${1:project_name}
	 *
	 * @package		${1:project_name}
	 * @author	 * @copyright	Copyright (c) 2009, * @license		
	 * @link			
	 * @since			Version 1.0
	 * @filesource
	 */

	// ------------------------------------------------------------------------

	/**
	 * ${3:classname}
	 *
	 * @package ${1:project_name}
	 * @subpackage Controller
	 * @since 1.0
	 * @author  **/
	class ${3:classname} extends ${4:Controller} {

		/**
		 * ${5:undocumented function}
		 *
		 * @return ${6:void}
		 * @author 	 **/
		function Index()
		{
			${0:// code...}
		}

	}
	// End File ${3:classname}.php
	// File Source /system/application/controllers/${3:classname}.php
# Form Validation Rules
snippet formrule
	$this->form_validation->set_rules('${1:field name}','${2:human name}', '${3:rules}');${4}
# Data array - $data['key']
snippet darr
	$data['${1:arrayName}'] = array(
		'${2}' => ${3},${4}
		);
# Additional array data
snippet arrv
	'${1}' => ${2},${3}
# Load view template
snippet loadtemp
	$data['main_content'] = '${1:view}';
	$this->load->view('includes/template', $data);${2}
##### Common Functions #####
# Form validation run == FALSE
snippet funform
	function ${1:function}()
	{
		${2:rules}
		if($this->form_validation_run() == FALSE)
		{
			${3:form data arrays}
		}
		else
		{
			${4:success view}
		}
	}
# Return If
snippet returnif
	if ($q->num_rows() > 0)
	{
		$${1:array} = $q->row_array();
		
		return $${1:array};
	}
	else
	{
		return FALSE;
	}
##### Form Helper #####
# Validation Errors
snippet valerr
	<?php echo validation_errors(); ?>${1}
# Form Open
snippet formo
	<?php echo form_open('${1:form controller}'); ?>${2}
# Form Close
snippet formc
	<?php echo form_close(); ?>${1}
## Form Fields ##
# Hidden
snippet fhidden
	<?php echo form_hidden('${1:name}', ${2:array}); ?>${3}
# Input
snippet finput
	<?php echo form_input('${1:array}', set_value('${2:name}')); ?>${3}
# Password
snippet fpass
	<?php echo form_password('${1:array}', set_value('${2:name}')); ?>${3}
# Upload
snippet fupload
	<?php echo form_upload('${1:array}', set_value('${2:name}')); ?>${3}
# Text area
snippet ftext
	<?php echo form_textarea('${1:array}', set_value('${2:name}')); ?>${3}
# Drop-down
snippet fdrop
	<?php echo form_dropdown('${1:name}',${2:array}, $this->input->post('${1}')); ?>${3}
# Checkbox
snippet fcheck
	<?php echo form_checkbox($${1:array}['${2:key}'], '', set_checkbox('${1}[]', '${2}')); ?>${3}
# Radio button
snippet fradio
	<?php echo form_radio($${1:array}['${2:key}'], '', set_radio('${1}[]', '${2}')); ?>${3}
# Form submit
snippet fsubmit
	<?php echo form_submit('${1:name}', '${2:value}'); ?>${3}
# Form reset
snippet freset
	<?php echo form_reset('${1:name}', '${2:value}'); ?>${3}
# Fieldset open
snippet fieldo
	<?php form_fieldset('${1:label}', '${2:array}'); ?>${3}
# Fieldset close
snippet fieldc
	<?php form_fieldset_close(); ?>${1}
##### HTML Snippets #####
# <br>
snippet r
	<br`Close()[1:]`>
# Div with class
snippet div
	<div id="${1:name}" class="${2}">
		${3}
	</div>
# Ordered list
snippet ol
	<ol id="${1}">
		${2}
	</ol>
# Unordered list
snippet ul
	<ul id="${1}">
		${2}
	</ul>
# List Item
snippet li
	<li>${1}</li>${2}
##### PHP/HTML Shorthand #####
# PHP Foreach
snippet sforeach
	<?php foreach ($${1:array} as $${2:key}) : ?>
		${3:// code...}
	<?php endforeach; ?>
##### Database Class/Active Record #####
# Get query
snippet dbget
	$q = $this->db->get('${1:table}');${2}
# Get_where query
snippet dbgetwhere
	$q = $this->db->get_where('${1:table}', array('${2:field}' => $${3:input}));${4}
# Select
snippet dbselect
	$this->db->select('${1:fields}');${2}
# Where
snippet dbwhere
	$this->db->where('${1:field}', $${2:input});${3}
# Insert
snippet dbinsert
	$this->db->insert('${1:table}', $${2:array});${3}
# Update
snippet dbupdate
	$this->db->update('${1:table}', $${2:array});${3}
# Delete
snippet dbdelete
	$this->db->delete('${1:table}', $${2:array});${3}
##### URL Helper #####
# Site URL
snippet surl
	<?php echo site_url("${1:segments}"); ?>${2}
# Base URL
snippet burl
	<?php echo base_url(); ?>${1}
# Current URL
snippet curl
	<?php echo current_url(); ?>${1}
# Anchor
snippet anchor
	<?php echo anchor('${1:segments}', '${2:text}', '${3:attributes}'); ?>${4}
# Safe Mailto
snippet mailto
	<?php echo safe_mailto('${1:email}', '${2:text}'); ?>${3}
snippet cimodload
	$this->load->model('${1:name}_model');
snippet cimodprop
	$this->${1:Model_name}_model->${2:property}
snippet cimodmeth
	$this->${1:Model_name}_model->${2:method}(${3:args})
snippet ciload
	$this->load->${1:to_load}(${2:args});
snippet cidb
	$query->result();
snippet cidba
	$query->result_array();
